/**
 * 
 */
package org.gigi.security.domain;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 权限实体
 * 
 * 1、一个权限实体代表一个权限点，用于功能权限，不涉及数据权限。
 * 2、可以将权限实体和菜单管理，控制用户或组的功能菜单。
 * 3、可以将权限实体编码通过注解或者AOP方式与业务方法关联，控制业务方法的执行权限。
 * 
 * @author Eugene Wang 2011-7-30
 * @see
 */
@Entity
@Table(name = "sec_authority")
public class Authority implements Serializable {
	private static final long serialVersionUID = 8899040687301619860L;

	@Id
	private String code;
	private String description;

	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((code == null) ? 0 : code.hashCode());
		return result;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof Authority))
			return false;
		Authority other = (Authority) obj;
		if (code == null) {
			if (other.code != null)
				return false;
		} else if (!code.equals(other.code))
			return false;
		return true;
	}
}
